




/* Testeo de tipos de datos y variables*/

funcion1 : function {

var1 : int;
var2 : boolean;
var3 : string;
var4 : real;

var1 : int=5;
var2 : boolean=true;
var3 : string="prueba";
var4 : real=10.99999;

arr1 : int [];
arr2 : real [3];
arr3 : string [][];
arr4 : boolean [6*i][];
arr5 : int [][6];
arr6 : int [][2][][2][2][][2][];

}


/* Testeo de declaracion y definicion de funciones */

funcion1: function;
funcion2: function { pepe; }
funcion3: function paramIn1:int;
funcion4: function paramIn1:int,paramIn2:real;
funcion5: function -> paramOut1:int;
funcion6: function -> paramOut1:int, paramOut1:real;
funcion7: function paramIn1:int,paramIn2:real -> paramOut1:int, paramOut1:real;

funcion3: function paramIn1:int { pepe;papa; }
funcion4: function paramIn1:int,paramIn2:real { pepe;papa; }
funcion5: function -> paramOut1:int { pepe;papa; }
funcion6: function -> paramOut1:int, paramOut1:real { pepe;papa; }
funcion7: function paramIn1:int,paramIn2:real -> paramOut1:int, paramOut1:real { pepe;papa; }

/* Testeo de expresiones */
funcion333: function {

		   resultado = 1 + 1.0;
		   resultado = 1 - 1.0;
		   resultado = 1 * 1.0;
		   resultado = 1 / 1.0;
		   resultado = 1 % 1.0;
		   resultadoBooleano = !resultadoBooleano;
		   resultadoBooleano = 1 == 2;
		   resultadoBooleano = 1 != 2;
		   resultadoBooleano = 1 > 2;
		   resultadoBooleano = 1 < 2;
		   resultadoBooleano = 1 >= 2;
		   resultadoBooleano = 1 <= 2;
		   resultadoBooleano = resultadoBooleano and resultadoBooleano;
		   resultadoBooleano = resultadoBooleano or resultadoBooleano;

var1 : int;
var2 : boolean;
var3 : string;
var4 : real;

var1 : int=5;
var2 : boolean=true;
var3 : string="prueba";
var4 : real=10.99999;

arr1 : int [];
arr2 : real [3];
arr3 : string [][];
arr4 : boolean [6*i][];
arr5 : int [][6];
arr6 : int [][2][][2][2][][2][];
}

/* Testeo de sentencias de control */
funcion3: function
{
	if num > 10 then { pepe; }
	if num > 10 then { pepe; } elseif num < 10 { papo; }
	if num > 10 then { pepe; } else { bbb; }
	if num > 10 then { pepe; } elseif num < 10 { pepe; } else { pppp; }

	while (variableBooleana) loop { ppe; }
	while (variableBooleana) loop { ppe; } ifquit { popo; }
	while (variableBooleana) loop { ppe; } ifnever {}
	while (variableBooleana) loop { ppe; } ifnever { } ifquit {}


}


/* Testeo de scope de varios niveles de variables */
funcion27: function
{
	variable1 : int=4;

	if(true) then
	{
		variable1 : boolean;
		while(true) loop
		{
			variable1:string="Hola Mundo";
			{
				variable1 : int=4;
			}

		}
		{
			variable1:int=77;
		}
	}


}

/* Como tendria que aparecer
funcion27
	variable1
		variable1 */
